ChatGPTで0からホームページ作成 Part ◯:コメント投稿をメールで通知する仕組みを作った!
こんにちは、YPO industryです。
今回は、前回追加したコメント投稿機能に、投稿があったら自動でメール通知する機能を追加しました!
WordPressを使わず、手作りのPHPサイトでここまでできると、かなり自由度が上がりますね。
✅ 目指す仕様
- 記事ページでコメント投稿されたら
- 管理者のメールアドレスに自動通知
- コメント内容と投稿された記事URLをメール本文に記載
これができれば、記事への反応にすぐ気付けるようになります!

🛠 実装方法
1. 管理者用メールアドレスを設定
まず、index.php
の冒頭に、管理者の受け取り用メールアドレスを設定します。
$admin_email = "example@example.com"; // ←管理用メールアドレスに変更
2. コメント投稿後にメールを送信する
コメントが保存されたら、すぐに mb_send_mail()
関数を使ってメールを送信します。
ポイントは「誰が・どんなコメントを書いたか」と「どのページで書かれたか」を本文に含めることです。
追加するコードは以下です。
// コメント保存
file_put_contents($comment_file, $entry, FILE_APPEND | LOCK_EX);
// メール通知
$subject = "【コメント通知】" . $safe_name . "さんから投稿がありました";
$full_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http")
. "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
$message = "名前: " . $safe_name . "\n"
. "コメント内容:\n" . $safe_comment . "\n\n"
. "投稿されたページURL:\n" . $full_url;
$headers = "From: no-reply@example.com"; // 適当な送信元アドレス
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_send_mail($admin_email, $subject, $message, $headers);
その後は、いつも通りリダイレクトして二重投稿を防止します。
header("Location: " . $_SERVER['REQUEST_URI']);
exit;
3. メール本文のイメージ
投稿があると、以下のようなメールが届きます。
名前: サンプルユーザー
コメント内容:
とても参考になりました!
投稿されたページURL:
https://example.com/category/sample-category/sample-article/
記事がどこにあるかもすぐわかるので、管理がとても楽になります!

📌 注意ポイント
- 送信元メール(From)は、できれば自分のドメインのメールアドレスにしておきましょう(例:
no-reply@example.com
) - テスト送信は必ずサーバー上(本番環境)で行う必要があります(ローカル環境ではメール送信できません)
- メールが迷惑フォルダに入ることもあるので、適宜フィルター設定も検討してください
✍ まとめ
今回で、
- コメント投稿
- コメント一覧表示
- コメント投稿時の自動通知メール

がすべて揃いました!
PHPだけでここまでできると、WordPressに頼らなくてもかなり本格的なサイト運営が可能になりますね!
次回は、投稿されたコメントを管理できる仕組み(例:削除ボタン・通報機能など)にもチャレンジしたいと思います。
ぜひまたご覧ください!